/** @file InputObserver.h
    @class InputObserver
    @brief A class that is inherited from by all classes that wish to capture input
*/
#include "stdafx.h"

#ifndef _InputObserver_h_
#define _InputObserver_h_

#include <OISEvents.h>
#include <OISInputManager.h>
#include <OISKeyboard.h>
#include <OISMouse.h>

class InputObserver
{
public:
	/**
	* @brief Constructor
	*/
	InputObserver();

	/**
	* @brief Function that is called when a key is pressed
	*/
	virtual bool keyPressed(const OIS::KeyEvent &arg);

	/**
	* @brief Function that is called when a key is released
	*/
	virtual bool keyReleased(const OIS::KeyEvent &arg);

	/**
	* @brief Function that is called when the mouse is moved
	*/
	virtual bool mouseMoved( const OIS::MouseEvent &arg );

	/**
	* @brief Function that is called when a mousebutton is pressed
	*/
	virtual bool mousePressed( const OIS::MouseEvent &arg, OIS::MouseButtonID id );

	/**
	* @brief Function that is called when a mousebutton is released
	*/
	virtual bool mouseReleased( const OIS::MouseEvent &arg, OIS::MouseButtonID id );

	/**
	* @brief Capture the input, called each frame
	*/
	//Flag to set if input should be captured at all
	bool inputActive;

};


#endif //_InputObserver_h_